Attribute VB_Name = "modConvLetras"
Option Explicit

'MODULO CONVERTIDOR DE NUMEROS EN LETRAS PARA LA IMPRESION DE CHEQUES

Public Function ConvierteEnLetras(ByVal Importe As Double, ByRef LetrasConv As String) As Boolean

Dim query As String
Dim rsLetras As ADODB.Recordset
Dim Alfa As String
Dim XMiles As Integer
Dim XCentenas As Integer
Dim XDecenas As Integer
Dim XDecimales As Integer

On Error GoTo Errores

ConvierteEnLetras = True


Alfa = ""
XMiles = 0
XCentenas = 0
XDecenas = 0
XDecimales = 0

XMiles = Int(Abs(Importe) / 1000)

If XMiles = 0 Then GoTo BuscaCentenas
If XMiles = 1 Then
    Alfa = Alfa & "UN MIL "
    GoTo BuscaCentenas
Else
    Set rsLetras = New ADODB.Recordset
    query = "SELECT impletras.ilenumero, impletras.ileletras FROM impletras where ilenumero='" & XMiles & "'"
    rsLetras.Open query, Conexion, adOpenForwardOnly, adLockReadOnly
    Alfa = Alfa & Trim(rsLetras!IleLetras) & " MIL "
    rsLetras.Close
    Set rsLetras = Nothing
End If


BuscaCentenas:

XCentenas = Int((Abs(Importe) - (XMiles * 1000)) / 100) * 100

If XCentenas = 0 Then GoTo BuscaDecenas

If (Abs(Importe) - (XMiles * 1000)) < 101 Then
    Alfa = Alfa & "CIEN "
    GoTo BuscaDecenas
Else
    Set rsLetras = New ADODB.Recordset
    query = "SELECT impletras.ilenumero, impletras.ileletras FROM impletras where ilenumero='" & XCentenas & "'"
    rsLetras.Open query, Conexion, adOpenForwardOnly, adLockReadOnly
    Alfa = Alfa & Trim(rsLetras!IleLetras)
    rsLetras.Close
    Set rsLetras = Nothing
End If


BuscaDecenas:

XDecenas = Int(Abs(Importe) - (XMiles * 1000) - XCentenas)

If XDecenas = 0 Then GoTo BuscaDecimales
'Else
    Set rsLetras = New ADODB.Recordset
    query = "SELECT impletras.ilenumero, impletras.ileletras FROM impletras where ilenumero='" & XDecenas & "'"
    rsLetras.Open query, Conexion, adOpenForwardOnly, adLockReadOnly
    Alfa = Alfa & " " & Trim(rsLetras!IleLetras)
    rsLetras.Close
    Set rsLetras = Nothing
'End If


BuscaDecimales:

If Int(Abs(Importe)) = 0 Then
    Alfa = CInt(Abs(Importe) * 100) & "/100"
    GoTo Final
ElseIf CInt((Abs(Importe) - Int(Abs(Importe))) * 100) = 0 Then
    Alfa = Alfa
    GoTo Final
End If

Alfa = Alfa & " CON " & CInt((Abs(Importe) - Int(Abs(Importe))) * 100) & "/100"
GoTo Final


Final:
LetrasConv = Alfa


Exit Function

Errores:
    
    ConvierteEnLetras = False

End Function

